/*
 * FileName：SysRoleMenuServiceImpl.java 
 * <p>
 * Copyright (c) 2017-2020 <a href="https://www.smartwx.info">hermit(1154808491@qq.com)</a>.
 * <p>
 * Licensed under the GNU General Public License, Version 3 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * <p>
 * http://www.gnu.org/licenses/gpl-3.0.html
 * <p>
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package com.smart.sys.service.impl;

import javax.annotation.Resource;

import com.smart.common.util.StringUtil;
import com.smart.common.util.Util;
import com.smart.sys.entity.SysUserRole;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

import com.smart.sys.dao.SysRoleMenuMapper;
import com.smart.sys.entity.SysRoleMenu;
import com.smart.sys.service.ISysRoleMenuService;

/**
 * 角色资源关系
 *
 * @author hermit
 * @version 2.0
 * @date 2018-12-30 22:26:32
 */
@Service
@Transactional
public class SysRoleMenuServiceImpl implements ISysRoleMenuService {

    @Resource
    private SysRoleMenuMapper sysRoleMenuMapper;

    @Override
    public SysRoleMenu queryObject(SysRoleMenu sysRoleMenu) throws Exception {
        return sysRoleMenuMapper.queryObject(sysRoleMenu);
    }

    @Override
    public List<SysRoleMenu> queryList(SysRoleMenu sysRoleMenu) throws Exception {
        return sysRoleMenuMapper.queryList(sysRoleMenu);
    }

    @Override
    public List<SysRoleMenu> queryListByPage(SysRoleMenu sysRoleMenu) throws Exception {
        return sysRoleMenuMapper.queryListByPage(sysRoleMenu);
    }

    @Override
    public Integer queryCount(SysRoleMenu sysRoleMenu) throws Exception {
        Integer ct = sysRoleMenuMapper.queryCount(sysRoleMenu);
        return ct == null ? 0 : ct;
    }

    @Override
    public Integer insert(SysRoleMenu sysRoleMenu) throws Exception {
        //先删除后添加
        sysRoleMenuMapper.delete(sysRoleMenu);
        if (null != sysRoleMenu && StringUtil.isNotBlank(sysRoleMenu.getMenuId())) {
            String[] menuIds = sysRoleMenu.getMenuId().split(",");
            for (String menuId : menuIds) {
                sysRoleMenuMapper.insert(SysRoleMenu.builder()
                        .id(Util.getUUID())
                        .roleId(sysRoleMenu.getRoleId())
                        .menuId(menuId).build());
            }
        }
        return 1;
    }

    @Override
    public Integer update(SysRoleMenu sysRoleMenu) throws Exception {
        return sysRoleMenuMapper.update(sysRoleMenu);
    }

    @Override
    public Integer delete(SysRoleMenu sysRoleMenu) throws Exception {
        return sysRoleMenuMapper.delete(sysRoleMenu);
    }

    @Override
    public Integer deleteBatch(List<String> ids) throws Exception {
        return sysRoleMenuMapper.deleteBatch(ids);
    }
}
